#pragma once

#include "RenderTypes.h"


enum ETextureLockType
{
	eTexLock_Discard,
	eTexLock_ReadOnly
};

struct ITexture
{
	enum		LockFlags;
	struct	LockedRect;

	virtual ~ITexture() {}

	virtual LockedRect	Lock(uint level, ETextureLockType lock_type) = 0;
	virtual void				Unlock(uint level) = 0;

	virtual void SavePNG(const char* filepath) = 0;
};

struct ITexture::LockedRect
{
	int		pitch;
	void*	bits;
};